package Controleur;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JDialog;

import Vue.AjoutClient;
import Vue.AjoutStation;
import Vue.Locations;
import Vue.LouerVelo;
import Vue.MainFrame;
import Vue.Map;
import Vue.RendreVelo;
import Vue.SupprimerClient;

/** Définit l'écouteur des boutons de la vue principale */
public class MainFrame_BtnListener implements ActionListener {

	/** La vue principale */
	private MainFrame mainframe;
	/** La map */
	private Map map;
	/** La popup d'ajout d'une station */
	private AjoutStation dialogAddSt;

	/**
	 * Instancie l'écouteur
	 * 
	 * @param mainFrame
	 *            La vue principale
	 * @param map
	 *            La map
	 */
	public MainFrame_BtnListener(MainFrame mainFrame, Map map) {
		// TODO Auto-generated constructor stub
		this.mainframe = mainFrame;
		this.map = map;
	}

	/**
	 * Instancie l'écouteur
	 * 
	 * @param mainFrame2
	 *            La vue principale
	 */
	public MainFrame_BtnListener(MainFrame mainFrame2) {
		// TODO Auto-generated constructor stub
		this.mainframe = mainFrame2;
	}

	/**
	 * Action lors de l'évenement
	 * 
	 * @param e
	 *            Objet de l'évenement
	 */
	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		if (e.getSource().equals(mainframe.getBtnAjouterStation())) {

			// Vu que c'est la seule pop up non "modal", on détecte si elle est
			// déjà ouverte. Si c'est le cas,
			// on dispose de l'ancienne instance pour n'en avoir que une à la
			// fois
			if (dialogAddSt != null)
				dialogAddSt.dispose();

			dialogAddSt = new AjoutStation(map);
			dialogAddSt.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
			dialogAddSt.setVisible(true);
			dialogAddSt.setLocation(10, 10);
			mainframe.setLocation(470, 10);
		}
		if (e.getSource().equals(mainframe.getBtnAjouterUnClient())) {
			AjoutClient dialogAjoutClient = new AjoutClient();
			dialogAjoutClient
					.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
			dialogAjoutClient.setVisible(true);
		}
		if (e.getSource().equals(mainframe.getBtnLocation())) {
			Locations dialogLoc = new Locations();
			dialogLoc.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
			dialogLoc.setVisible(true);
		}
		if (e.getSource().equals(mainframe.getBtnSupprimerUnClient())) {
			SupprimerClient dialogSuppClient = new SupprimerClient();
			dialogSuppClient.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
			dialogSuppClient.setVisible(true);
		}
		if (e.getSource().equals(mainframe.getBtnLouerUnVlo())) {
			LouerVelo dialogLoue = new LouerVelo();
			dialogLoue.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
			dialogLoue.setVisible(true);
		}
		if (e.getSource().equals(mainframe.getBtnRendreUnVlo())) {
			RendreVelo dialogRend = new RendreVelo();
			dialogRend.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
			dialogRend.setVisible(true);
		}
	}

}
